package raf;

import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.RandomAccessFile;

/**
 * 通过提高每次读写的数据量,减少实际读写的次数可以提高读写效率
 */
public class CopyDemo2 {
    public static void main(String[] args) throws IOException {
        RandomAccessFile src = new RandomAccessFile("boss.jpg","r");
        RandomAccessFile desc = new RandomAccessFile("boss2.jpg","rw");
        /*
            RandomAccessFile提供了块读写的方法
            读:
            int read(byte[] data)
            一次性从文件中读取给定字节数组总长度的字节量并装入到该数组,返回值表示实际读写
            到的字节量,如果返回值为-1则表示
         */
        byte[] data = new byte[1024*10];
        int len = 0;
        long start = System.currentTimeMillis();
        while((len = src.read(data))!= -1){
            desc.write(data,0,len);//将读取的10KB数据一次性写入到复制文件中
        }
        long end = System.currentTimeMillis();
        System.out.println("复制完毕!耗时:"+(end-start)+"ms");
        src.close();
        desc.close();
    }
}